diff -Nur lirc-0.8.6.orig//drivers/lirc_i2c/lirc_i2c.c lirc-0.8.6/drivers/lirc_i2c/lirc_i2c.c
--- lirc-0.8.6.orig//drivers/lirc_i2c/lirc_i2c.c	2009-08-30 11:59:53.000000000 -0500
+++ lirc-0.8.6/drivers/lirc_i2c/lirc_i2c.c	2010-05-21 12:14:43.701436402 -0500
@@ -1,4 +1,4 @@
-/*      $Id: lirc_i2c.c,v 1.70 2009/08/30 16:59:53 jarodwilson Exp $      */
+/*      $Id: lirc_i2c.c,v 1.72 2009/12/28 15:29:03 jarodwilson Exp $      */
 
 /*
  * lirc_i2c.c
@@ -399,8 +399,8 @@
 		.name	= "i2c ir driver",
 	},
 #endif
-	.id		= I2C_DRIVERID_EXP3, /* FIXME */
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31)
+	.id		= I2C_DRIVERID_EXP3, /* FIXME */
 	.attach_adapter	= ir_probe,
 	.detach_client	= ir_remove,
 #else
@@ -492,20 +492,23 @@
 		ir->l.add_to_buf = add_to_buf_pv951;
 		break;
 	case 0x71:
-#ifdef I2C_HW_B_CX2341X
-		if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_BT848) ||
-		    adap->id == (I2C_ALGO_BIT | I2C_HW_B_CX2341X)) {
-#else
-		if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_BT848)) {
+
+
+
+#ifdef I2C_HW_B_CX2388x
+		/* Leadtek Winfast PVR2000 or Hauppauge HVR-1300 */
+		if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_CX2388x))
+			strlcpy(ir->c.name, "Hauppauge HVR1300", I2C_NAME_SIZE);
+		else
 #endif
+		{
 			/*
 			 * The PVR150 IR receiver uses the same protocol as
 			 * other Hauppauge cards, but the data flow is
 			 * different, so we need to deal with it by its own.
 			 */
 			strlcpy(ir->c.name, "Hauppauge PVR150", I2C_NAME_SIZE);
-		} else /* I2C_HW_B_CX2388x */
-			strlcpy(ir->c.name, "Hauppauge HVR1300", I2C_NAME_SIZE);
+		}
 		ir->l.code_length = 13;
 		ir->l.add_to_buf = add_to_buf_haup_pvr150;
 		break;
@@ -516,19 +519,18 @@
 		break;
 	case 0x18:
 	case 0x1a:
-#ifdef I2C_HW_B_CX2341X
-		if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_BT848) ||
-		    adap->id == (I2C_ALGO_BIT | I2C_HW_B_CX2341X)) {
+#ifdef I2C_HW_B_CX2388x
+		if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_CX2388x)) {
+			strlcpy(ir->c.name, "Leadtek IR", I2C_NAME_SIZE);
+			ir->l.code_length = 8;
+			ir->l.add_to_buf = add_to_buf_pvr2000;
+		} else {
 #else
-		if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_BT848)) {
+		{
 #endif
 			strlcpy(ir->c.name, "Hauppauge IR", I2C_NAME_SIZE);
 			ir->l.code_length = 13;
 			ir->l.add_to_buf = add_to_buf_haup;
-		} else { /* I2C_HW_B_CX2388x */
-			strlcpy(ir->c.name, "Leadtek IR", I2C_NAME_SIZE);
-			ir->l.code_length = 8;
-			ir->l.add_to_buf = add_to_buf_pvr2000;
 		}
 		break;
 	case 0x30:
